<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:composite="http://java.sun.com/jsf/composite">

    <h:head>
        <f:facet name="first">
            <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
        </f:facet>
    </h:head>

    <composite:interface>
        <composite:attribute name="lblbtnfind" type="java.lang.String" />
        <composite:attribute name="update" type="java.lang.String" />
        <composite:attribute name="listaDetalle" type="java.util.List" />
        <composite:attribute name="enabledButton" type="java.lang.Boolean" default="false"/>
        <composite:attribute name="esGuia" type="java.lang.Boolean" default="false"/>
    </composite:interface>

    <composite:implementation>

        <p:outputPanel>
            <p:commandButton id="btnFindArticulo" value="#{cc.attrs.lblbtnfind}" actionListener="#{MBComponenteFindAddArticulo.carga}"
                             icon="ui-icon-plus" immediate="true" update="pnlFindArticulo" process="@this" ajax="true"
                             oncomplete="wv#{cc.id}.show()" style="font-size:10px;" disabled="#{cc.attrs.enabledButton}">
                <f:attribute name="listaDetalle" value="#{cc.attrs.listaDetalle}" />  
            </p:commandButton>	
        </p:outputPanel>

        <p:dialog id="idFindCliente" header="Buscando Articulo" showEffect="explode"
                  widgetVar="wv#{cc.id}" modal="true" maximizable="true">
            <p:messages id="growl" showDetail="true" autoUpdate="false" rendered="false"/> 
            <p:panelGrid id="pnlFindArticulo" style="width:100%;text-align:left">
                <p:row>
                    <p:column>
                        <h:outputLabel id="lblRazon" value="ARTICULO: " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:inputText id="txtArticulo"  onkeyup="cambiarMayuscula(this)" value="#{BKComponenteFindAddArticulo.articulo}" size="80"/>
                    </p:column>
                    <p:column>
                        <p:commandButton id="btnFindBuscar" value="BUSCAR" 
                                         ajax="true" update="datatblArticulos,growl" process="@this txtArticulo" 
                                         actionListener="#{MBComponenteFindAddArticulo.buscarArticulos()}"/>
                    </p:column>
                </p:row>

                <p:row>
                    <p:column colspan="3">
                        <p:fieldset legend="Lista de Articulos">
                            <p:dataTable id="datatblArticulos" var="artSede"
                                         value="#{BKComponenteFindAddArticulo.listaArticulos}"
                                         emptyMessage="No exsiten articulo"
                                         rowIndexVar="rowIndex" paginator="true" rows="10"
                                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink}
                                         {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                         rowsPerPageTemplate="10,20,30"  rowKey="#{artSede}" 
                                         selection="#{BKComponenteFindAddArticulo.articuloSeleccionado}" selectionMode="single">

                                <p:ajax event="rowSelect" update=":formFacturacion:dataTablaArticulos:findArticulo:txtCantidad,
                                        :formFacturacion:dataTablaArticulos:findArticulo:txtDescrip,
                                        :formFacturacion:dataTablaArticulos:findArticulo:txtPrecio"
                                        listener="#{MBComponenteFindAddArticulo.seleccionarArticulo}"
                                        />  

                                <p:column id="idColumnaNum" style="width: 5%"  headerText="N°.">
                                    <h:outputText value="#{rowIndex+1}" />
                                </p:column>

                                <p:column id="idColumnaModelo" style="width: 15%"
                                          sortBy="#{artSede.articulo.modelo}" headerText="Modelo">
                                    <h:outputText value="#{artSede.articulo.modelo}" />
                                </p:column>

                                <p:column id="idColumnaDesc" style="width: 80%"
                                          sortBy="#{artSede.articulo.detalle}" 
                                          headerText="Detalle">
                                    <h:outputText value="#{artSede.articulo.detalle}" />
                                </p:column>

                                <p:column id="idColumnaPartida" style="width: 80%"
                                          sortBy="#{artSede.partidaLote}" 
                                          headerText="Partida">
                                    <h:outputText value="#{artSede.partidaLote}" />
                                </p:column>

                                <p:column id="idColumnaUM" style="width: 80%"
                                          sortBy="#{artSede.unidadMedida.abrev}" headerText="UM">
                                    <h:outputText value="#{artSede.unidadMedida.abrev}" />
                                </p:column>

                                <p:column id="idColumnaCantidad" style="width: 80%"
                                          sortBy="#{artSede.caStockDisponible}" headerText="Cantidad">
                                    <h:outputText value="#{artSede.caStockDisponible}" >
                                        <f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
                                    </h:outputText>
                                </p:column>


                            </p:dataTable>
                        </p:fieldset>
                    </p:column>
                </p:row>
                <p:row rendered="false">
                    <p:column>
                        <h:outputLabel id="lblUnidad" value="UNIDAD: " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:selectOneMenu id="cbxTipUnidad"
                                         value="#{BKComponenteFindAddArticulo.idUnidadMedida}">
                            <f:selectItem itemLabel="Seleccionar" itemValue="" />
                            <f:selectItems value="#{BKComponenteFindAddArticulo.listaUnidadMedida}"
                                           var="unidad" itemLabel="#{unidad.descrip}"
                                           itemValue="#{unidad.id}" />
                        </p:selectOneMenu>
                    </p:column>
                    <p:column>

                    </p:column>
                </p:row>
                <p:row>
                    <p:column>
                        <h:outputLabel id="lblDescrip" value="ARTICULO: " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:inputText id="txtDescrip"  onkeyup="cambiarMayuscula(this)" value="#{BKComponenteFindAddArticulo.descripcion}"
                                     size="80" />
                        <p:message for="txtDescrip" display="text" />
                    </p:column>
                    <p:column>

                    </p:column>
                </p:row>
                <p:row>
                    <p:column>
                        <h:outputLabel id="lblPrecio" value="PRECIO: " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:inputText id="txtPrecio"  onkeyup="cambiarMayuscula(this)" value="#{BKComponenteFindAddArticulo.precioUnitario}" >
                            <f:validateDoubleRange minimum="0.00"  />
                        </p:inputText>
                        <p:message for="txtPrecio" display="text" />
                    </p:column>
                    <p:column>

                    </p:column>
                </p:row>
                <p:row>
                    <p:column>
                        <h:outputLabel id="lblCantidad" value="CANTIDAD: " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:inputText id="txtCantidad"  onkeyup="cambiarMayuscula(this)" value="#{BKComponenteFindAddArticulo.cantidad}" required="true"
                                     validatorMessage="Debe ser mayor a cero y menor igual a #{BKComponenteFindAddArticulo.articuloSeleccionado.caStockDisponible}">
                            <f:validateDoubleRange minimum="0.00"  />
                        </p:inputText> 
                        <p:message for="txtCantidad" display="text" />
                    </p:column>
                    <p:column>

                    </p:column>
                </p:row>

                <p:row rendered="#{cc.attrs.esGuia}">
                    <p:column>
                        <h:outputLabel id="lblEmpaques" value="BULTOS(*): " class="lblForm" />
                    </p:column>
                    <p:column>
                        <p:inputText onkeyup="cambiarMayuscula(this)" value="#{BKComponenteFindAddArticulo.cantidadEmpaque}" style="float: left;" />
                        <p:selectOneMenu  id="txtUnidadVenta" style="float: left;" editable="true"
                                          value="#{BKComponenteFindAddArticulo.empaque}">                              
                            <f:selectItem itemLabel="Seleccione" itemValue="" />  
                            <f:selectItem itemLabel="ROLLO" itemValue="ROLLO" />  
                            <f:selectItem itemLabel="BOLSA" itemValue="BOLSA" />  
                        </p:selectOneMenu> 
                    </p:column>
                </p:row>

                <p:row>
                    <p:column style="text-align:center" colspan="3">
                        <p:commandButton id="btnAceptarArticulos" value="Aceptar"
                                         actionListener="#{MBComponenteFindAddArticulo.notificarObservadores()}"
                                         process="@this pnlFindArticulo" update="#{cc.attrs.update}"  
                                         oncomplete="if (args.validationFailed){ wv#{cc.id}.show()} else {wv#{cc.id}.hide()}" />
                        <p:commandButton id="btnCancelarArticulos" value="Cancelar" type="button"
                                         onclick="wv#{cc.id}.hide();" />
                    </p:column>
                </p:row>
            </p:panelGrid>
        </p:dialog>

    </composite:implementation>

</html>